1. Field of the Invention
This invention relates generally to intelligent backup systems and, more particularly, to methods and apparatus for intelligently backing up selected data from a host computer""s main storage drive to prevent loss of data or user productivity.
2. Description of the Related Art
In recent years, personal computers have become an integral necessity in both the work and home environment. For many people, personal computers have become their main communication system, which can be used for sending and receiving electronic mail (i.e., e-mail), transferring files over a local area network (LAN), and communicating over the world wide web via the Internet. Because people have placed such a high level of dependence on their personal computers, when a failure (i.e., crash) to either a hardware or software component occurs, the user will generally suffer greatly in terms of productivity loss.
Many times, failures to either hardware or software components can lead to the complete loss of personal data, which often cannot be recovered using standard data recovery tools. In efforts to remedy the severity of such data loss, many people perform routine backups of their entire hard drives or files. In this manner, if an unrecoverable failure were to occur, then the user would lose only the data that was created between the last backup operation and the unrecoverable failure.
Unfortunately, relying on periodic backups of a computer""s storage drives (i.e., hard drives) does not eliminate the loss in productivity suffered while the failure is being attended to, and the need to reconstruct all of the lost data that was created between the last backup and the failure. To further complicate the reconstruction process, most of today""s computer software products have to be installed using complex installation software that is designed to place each component of the software product in the correct system folder location, registry file, startup file, etc., to preserve proper functionality with the computer""s operating system. As a result, even though the entire contents of a backup can be retrieved from the backup media, the restoring of a subsequently repaired storage drive will require a substantial amount of reconstruction.
Although the restoration of failed storage devices can sometimes be a trivial process when only a minor number of programs are re-installed onto the failed computer system, most of today""s computer systems use a wide number of programs, each requiring custom installation for proper operation. Furthermore, because most computer users purchase, update, and modify computer programs over the Internet, it is often impossible to reconstruct the original state of all programs, patches, or executables that are loaded onto a computer without keeping detailed logs of where each component was acquired. As a result, when attempts to reconstruct a user""s computer system are made, many of the originally installed software programs or components may not be installed because they are no longer available or supported by the original supplier.
Notwithstanding that most failures that are a result of a hardware malfunction or a software problem can be fixed, either by complete replacement or by performing repairs, users still experience data losses that produce harsh penalties in productivity or require significant down time. That is, even if users systematically backup their system regularly, some amount of data will be lost between the time of the last backup and the subsequent restoration. In certain circumstances, even if only a small amount of data is lost, that small amount may translate into many hours of reconstruction time. Furthermore, if the lost data was a time sensitive piece of data, then reconstruction over many hours or days may not be acceptable.
In view of the foregoing, there is a need for an intelligent backup system and method for implementing the system to protect data of a computer""s storage drive in case a system failure occurs. There is also a need for a system and a method for implementing the system that will enable a user to continue working from the intelligently backed-up data after a system failure occurs, and then restore the failed system after the system failure is intelligently identified and repaired.
Broadly speaking, the present invention fills these needs by providing an intelligent backup and restore system that prevents downtime productivity losses, and assists the user in trouble shooting the failure, repairing the failure if possible, and restoring the failed system back to its pre-failure condition. All of these functionalities are provided to the user through a user friendly graphical user interface that helps the user resume his or her normal computer use by booting to a peripheral storage device (that holds an intelligently backup data set) while the failure is remedied. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
In one aspect of the invention, a method for generating a footprint image file of a primary storage device connected to a computer system is provided. In this method, a footprint module having a set of methods that is configured to generate the footprint image file is called. The system registry of the computer system is then scanned to ascertain whether a controller is connected to the computer system. Next, the system registry, an application programming interface, and a partition session selector device driver are scanned to ascertain information related to storage devices connected to the controller. The system registry, the application programming interface, and the partition session selector device driver also are scanned to ascertain information related to logical partitions of the storage devices. Finally, a footprint image file containing information regarding the controller, the storage devices, and the logical partitions of the storage devices is generated.
In one embodiment, the method further includes the operation of writing the footprint image file to a secondary storage device connected to the computer system. In another embodiment, the method further includes the operation of analyzing the footprint image file. The operation of analyzing the footprint image file preferably includes the operations of obtaining a previous footprint image file, obtaining a current footprint image file, and comparing the previous and current footprint image files to find differences therebetween. This comparison enables the intelligent backup and restoring system to determine whether anything has changed between boots, e.g., whether a hard drive has been added or a hard drive is missing.
In one embodiment, the partition session selector device driver is configured to hide a secondary storage device connected to the computer system from a user when the computer system boots from the primary storage device and to hide the primary storage device from the user when the computer system boots from the secondary storage device. The secondary storage device connected to the computer system is preferably a hard drive or a removable media drive.
In another aspect of the invention, a computer readable media is provided. In one embodiment, the computer readable media contains program instructions implementing the above-described method for generating a footprint image file of a primary storage device connected to a computer system. Thus, in this embodiment the computer readable media contains program instructions for (1) calling a footprint module having a set of methods that is configured to generate the footprint image file, (2) scanning a system registry of the computer system to ascertain whether a controller is connected to the computer system, (3) scanning the system registry, an application programming interface, and a partition session selector device driver to ascertain information related to storage devices connected to the controller, (4) scanning the system registry, the application programming interface, and the partition session selector device driver to ascertain information related to the logical partitions of the storage devices, and (5) generating a footprint image file containing information regarding the controller, the storage devices, and the logical partitions of the storage devices.
In another embodiment, the computer readable media further includes program instructions for writing the footprint image file to a secondary storage device connected to the computer system. In yet another embodiment, the computer readable media further includes program instructions for analyzing the footprint image file. In this embodiment, the program instructions preferably include program instructions for (1) obtaining a previous footprint image file, (2) obtaining a current footprint image file, and (3) comparing the previous and current footprint image files to find differences therebetween.
The backup and restore system of the present invention is advantageously designed to intelligently protect a user""s data and productivity upon experiencing a hard disk failure. In one embodiment, once the backup and restore system is installed and set-up, the backup operations are performed in an incremental fashion (e.g., after the initial full backup, only those files that have changed from one backup to another will be backed up) to a peripheral storage device media. It should be appreciated that this incremental backup technique provides a powerful level of performance enhancement over conventional backup systems.
Another advantage of the intelligent backup and restore system of the present invention is that it substantially eliminates the tremendous downtime that is typical of when a hard disk crash is experienced and no backup or simple conventional backup techniques are used. As a result, user productivity will no longer suffer when hard disk failures occur. In addition, the embodiments of the present invention also assist the user in attempting to repair the crashed hard disk. However, if the crashed hard disk is not repairable, the system will automatically detect when a new hard disk is added to the user""s system, and then assists in partitioning and formatting the hard disk for the user. When a new hard disk is prepared or the old hard disk is repaired, the system will restore the operating system and data files to their current state as now present on the peripheral storage device media. Upon re-booting, the newly restored hard disk will once again become the boot device. Another advantage of the present invention is that the peripheral storage device media does not have to be identical to that of the system""s hard drive. More specifically, even though most computer systems implement IDE/EIDE hard drives, the peripheral storage device (that is internal or external) does not have to be an IDE/EIDE drive. Although they can be the same, they may be of any type, standard, or size other than that of the computer system. Further yet, because the peripheral storage device media may be of a different kind and size than that of the computer system, when the spare tire backup is created, a file-based copying operation is advantageously implemented.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.